1. Introdução

No decorrer deste curso, os programas R/RStudio serão usados como uma ferramenta que deve auxiliar na aplicação de métodos e técnicas de análise da informação, uma etapa fundamental em pesquisas que buscam um aumento da compreensão de questões no nosso campo de interesse.

É importante ressaltar o uso do R/RStudio não pode ser dissociado do processo de pesquisa, que envolve a observação, formulação de hipóteses, coleta de dados e análise de dados, sendo este o foco deste curso.

1.1. O que é o R?

O R é um programa estatístico muito usado na análise e visualização de dados, onde a interação é feita através de uma sintaxe (uma linguagem de programação).

Algumas de suas vantagens são:

  • É gratuito, de distribuição livre e de código aberto
  • Possui uma curva de aprendizado bastante amigável, sendo muito fácil de se aprender (se comparado a outros programas estatísticos)
  • Todas as rotinas criadas em R são transparentes e reprodutíveis, seguindo os princípios da ciência aberta
  • Existe uma enorme quantidade de pacotes, para diversos tipos de aplicações
  • Existe uma enorme quantidade de ajuda e tutoriais disponíveis gratuitamente na internet
  • É amplamente utilizado pela comunidade acadêmica e mercado

Um script refere-se à uma rotina de análise ou visualização de dados que:

  • É um texto
  • É transparente
  • É reprodutível
  • Pode ser compartilhado
  • Pode ser colaborativo

1.2. O que é o RStudio?

O RStudio é um programa livre de ambiente de desenvolvimento integrado, ou seja, é uma interface para desenvolver programas com a linguagem R. Além de permitir escrever códigos em scripts e rodar códigos no console, é possível visualizar gráficos e mapas (estáticos ou dinâmicos), gerenciar pacotes, navegar pelos arquivos, dentre outras funções.

1.3. Transferência e instalação do R e RStudio

Referenciar os tutoriais disponíveis.

1.4. Interface RStudio

A interface do RStudio deve exibir, na maior parte do tempo, quatro painéis principais:

Fig. 1 - Interface RStudio

1. Source: É a sua área de trabalho principal. Pode conter várias janelas, com códigos (scripts), tabelas e outros conteúdos. Ao clicar em Run, a linha que o cursor está apontando vai rodar e aparecer no Console.

2. Console: Você pode escrever uma linha de código diretamente no Console. Todo o código que rodar na Fonte, será enviado ao Console, onde os avisos e resultados do código rodado aparecerão.

3. Environment/History: * Environment: É o ambiente de trabalho ativo. Todos os objetos e funções definidas devem aparecer no ambiente. * History: Exibe o histórico de cada linha de código rodada, que podem ser enviadas ao Source ou Console.

4. Files/Plots/Packages/Help/Viewer: * Files: Exibe o diretório de trabalho ativo. * Plots: Exibe os gráficos, mapas e outras figuras produzidas. * Packages: Exibe uma lista de pacotes instalados e ativos. * Help: Exibe * Viewer: Funciona como um navegador de internet.

1.5. Como buscar ajuda

No decorrer das aulas práticas, é possível que você não consiga entender porque uma função não está funcionando ou tenha uma ideia e precisa aprender como aplicá-la. Não se preocupe: é normal ter dúvidas no processo de análise e visualização de dados. Na verdade, o R/RStudio conta com uma ferramenta para isso: é possível

2. Análise exploratória

Nessa primeira aula prática, vamos realizar uma análise exploratória dos discentes matriculados no Bacharelado em Planejamento Territorial (BPT), a partir da amostra dos respondentes da pesquisa Perfil Discente 2019 da PROPLADI/UFABC, com o objetivo de responder às seguintes perguntas:

  1. Qual é a mediana da idade dos discentes matriculados no BPT?
  2. Qual é o CR médio dos discentes matriculados no BPT?
  3. Quais são os três municípios de residência mais comuns entre os discentes matriculados no BPT?
  4. Qual o município de residência mais comum entre os discentes matriculados no BPT que assistiram disciplinas principalmente no matutino no último ano?

2.1 Criando um script

Após a instalação do R e RStudio, abra o RStudio. Clique em New file >>> R Script ou aperte os comando Ctrl + Shift + N para criar um novo script, onde vamos salvar a rotina de análise de dados.

Fig. 2 - Como criar um novo script

Em cada aula prática, vamos salvar a rotina de análise de dados em um novo script, que podemos abrir a qualquer momento para lembrar as funções e objetos que foram usados. É recomendado submeter, junto com o trabalho final, um script que permite a reprodução da análise de dados.

2.2 Importando os dados

Os dados já foram pré-processados para conter apenas as observações (discentes matriculados no BPT) e variáveis de interesse. O endereço para acessar a base de dados é: https://raw.githubusercontent.com/luisfelipebr/mti/master/dados/dados_bpt1.csv.

O RStudio conta com um botão para auxiliar na importação de dados. Clique em Import Dataset >>> From Text (readr)... para importar a sua primeira base de dados. Em File/URL você pode colocar o endereço web para a transferência e importação da base de dados (desde que você tenha conexão com a internet) ou você pode clicar em Browse para navegar pelo seu diretório até encontrar o arquivo que deseja importar. Uma pré-visualização do arquivo deve aparecer em Data preview, permitindo que você confira se a importação da base de dados deu certo. Import options apresenta algumas opções de importação adicionais que você pode explorar mais tarde.

Adicione o endereço web da nossa base de dados e clique em Update ou faça a transferência do arquivo e indique o caminho clicando no botão Browse.

Veja que alguns caracteres apareceram com erro. Isso aconteceu porque o formato do nosso arquivo não foi reconhecido. É possível arrumar esses caracteres clicando em Locale: Configure.... Em Encoding: selecione Other... e escreva latin1. Clique em OK e em seguida em Configure.

Se você clicar na opção Import, a base de dados será importada. Mas como o nosso objetivo é tornar o código reprodutível, vamos copiar o código que apareceu em Code preview e colar no nosso script.

library(readr)
dados_bpt1 <- read_csv("https://raw.githubusercontent.com/luisfelipebr/mti/master/dados/dados_bpt1.csv", locale = locale(encoding = "latin1"))
View(dados_bpt1)

Fig. 3 - Importação da base de dados através da interface

Selecione todo o código (3 linhas) e clique em Run ou aperte os comandos Ctrl + Enter para rodar o seu primeiro código. Uma nova janela será aberta, permitindo a visualização da base de dados. Ela foi aberta após a reprodução do código View(dados_bpt1), que abre uma tabela parecida com a do excel para visualização dos dados.

Se tudo deu certo, a sua base de dados está agora listada no Environment: dados_bpt1 com 37 observações e 8 variáveis.

Fig. 4 - Rodando o código

Atenção: Se essa foi a sua primeira vez usando o R no seu computador, pode ser necessário instalar o pacote readr para importar os dados. Isso pode ser feito rodando o código abaixo após copiar e colar no seu script ou console. Um pacote só precisa ser instalado uma vez em cada computador.

install.packages("readr")

2.3. Análise exploratória

Além da função View(), existem diversas outras funções que permitem explorar uma base de dados.

A função head() exibe as primeiras observações da base de dados no Console, sem a necessidade de abrir uma nova aba, e é altamente recomendada para bases de dados grandes (mais de 100.000 observações) que podem travar o programa RStudio se abertas.

head(dados_bpt1)
## # A tibble: 6 x 8
##      id idade ano_de_ingresso    ca    cr turno  renda        municipio_de_resi~
##   <dbl> <dbl>           <dbl> <dbl> <dbl> <chr>  <chr>        <chr>             
## 1     1    25            2013  2.7   2.6  Matut~ De R$ 5.000~ Ribeirão Pires - ~
## 2     2    22            2015  2.9   2.86 Notur~ De R$ 1.500~ São Bernardo do C~
## 3     3    25            2013  2.7   2.5  Matut~ De R$ 750,0~ São Paulo - SP    
## 4     4    23            2015  3.01  2.91 Notur~ De R$ 3.000~ Mauá - SP         
## 5     5    24            2013  2     1.6  Notur~ De R$ 4.000~ São Paulo - SP    
## 6     6    31            2013  3.2   2.72 Matut~ De R$ 3.000~ São Paulo - SP

A função tail(), de forma similar, exibe as últimas observações da base de dados no Console.

tail(dados_bpt1)
## # A tibble: 6 x 8
##      id idade ano_de_ingresso    ca    cr turno  renda        municipio_de_resi~
##   <dbl> <dbl>           <dbl> <dbl> <dbl> <chr>  <chr>        <chr>             
## 1    32    24            2015  3.5   3.5  Matut~ De R$ 5.000~ São Paulo - SP    
## 2    33    30            2010 NA    NA    Notur~ Até R$ 750,~ São Bernardo do C~
## 3    34    NA            2012 NA    NA    Notur~ De R$ 4.000~ São Bernardo do C~
## 4    35    24            2014  3.5   3.4  Notur~ Acima de R$~ São Paulo - SP    
## 5    36    23            2015  4     3.6  Notur~ De R$ 750,0~ São Paulo - SP    
## 6    37    29            2012  2.43  1.93 Notur~ Até R$ 750,~ São Paulo - SP

A função names() exibe o nome de todas as variáveis da base de dados no Console.

names(dados_bpt1)
## [1] "id"                      "idade"                  
## [3] "ano_de_ingresso"         "ca"                     
## [5] "cr"                      "turno"                  
## [7] "renda"                   "municipio_de_residencia"

A função str() exibe a estrutura da base de dados, com a classe da base de dados (tibble - é um nome para dados em formato de tabela), o número de observações e variáveis, o nome de cada variável, a classe de cada variável (se é numérica, lógica, caractére ou outras) e as primeiras observações.

str(dados_bpt1)
## tibble [37 x 8] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $ id                     : num [1:37] 1 2 3 4 5 6 7 8 9 10 ...
##  $ idade                  : num [1:37] 25 22 25 23 24 31 32 29 NA 23 ...
##  $ ano_de_ingresso        : num [1:37] 2013 2015 2013 2015 2013 ...
##  $ ca                     : num [1:37] 2.7 2.9 2.7 3.01 2 3.2 NA 2 3 2.7 ...
##  $ cr                     : num [1:37] 2.6 2.86 2.5 2.91 1.6 2.72 NA 2 2.8 2.04 ...
##  $ turno                  : chr [1:37] "Matutino" "Noturno" "Matutino" "Noturno" ...
##  $ renda                  : chr [1:37] "De R$ 5.000,01 a R$ 7.000,00" "De R$ 1.500,01 a R$ 2.250,00" "De R$ 750,01 a R$ 1.500,00" "De R$ 3.000,01 a R$ 4.000,00" ...
##  $ municipio_de_residencia: chr [1:37] "Ribeirão Pires - SP" "São Bernardo do Campo - SP" "São Paulo - SP" "Mauá - SP" ...
##  - attr(*, "spec")=
##   .. cols(
##   ..   id = col_double(),
##   ..   idade = col_double(),
##   ..   ano_de_ingresso = col_double(),
##   ..   ca = col_double(),
##   ..   cr = col_double(),
##   ..   turno = col_character(),
##   ..   renda = col_character(),
##   ..   municipio_de_residencia = col_character()
##   .. )

Importante: o operador $ é usado para referir-se a uma variável da base de dados.

A função summary() apresenta um sumário com estatísticas descritivas (mínimo, 1º quartil, mediana, média, 3º quartil, máximo e valores faltantes - NA’s) para todas as variáveis numéricas.

summary(dados_bpt1)
##        id         idade       ano_de_ingresso       ca              cr       
##  Min.   : 1   Min.   :19.00   Min.   :2009    Min.   :2.000   Min.   :1.600  
##  1st Qu.:10   1st Qu.:24.00   1st Qu.:2012    1st Qu.:2.675   1st Qu.:2.475  
##  Median :19   Median :25.00   Median :2013    Median :2.990   Median :2.820  
##  Mean   :19   Mean   :25.71   Mean   :2013    Mean   :2.925   Mean   :2.757  
##  3rd Qu.:28   3rd Qu.:27.50   3rd Qu.:2015    3rd Qu.:3.203   3rd Qu.:3.152  
##  Max.   :37   Max.   :32.00   Max.   :2018    Max.   :4.000   Max.   :3.600  
##               NA's   :2                       NA's   :5       NA's   :5      
##     turno              renda           municipio_de_residencia
##  Length:37          Length:37          Length:37              
##  Class :character   Class :character   Class :character       
##  Mode  :character   Mode  :character   Mode  :character       
##                                                               
##                                                               
##                                                               
## 

No sumário, já temos a resposta para as duas primeiras questões.

Mas essas respostas também podem ser apresentadas de forma mais direta, através de funções específicas.

1. Qual é a mediana da idade dos discentes matriculados no BPT?

A mediana pode ser obtida através da função median().

median(dados_bpt1$idade)
## [1] NA

Mas quando digitamos median(dados_bpt1$idade), a resposta é um valor faltante (NA). Isso aconteceu porque, conforme vimos no sumário, existem 2 NA’s na variável idade. Para obter o mesmo resultado do sumário, podemos acrescentar o argumento na.rm = TRUE para remover os valores faltantes do cálculo da mediana.

median(dados_bpt1$idade, na.rm = TRUE)
## [1] 25

Portanto, a mediana da idade dos discentes matriculados no BPT é 25 anos.

2. Qual é o CR médio dos discentes matriculados no BPT?

De forma similar, podemos aplicar a função mean() para obter o CR médio dos discentes matriculados no BPT.

mean(dados_bpt1$cr, na.rm = TRUE)
## [1] 2.7575

O CR médio dos discentes matriculados no BPT é 2,757.

3. Quais são os três municípios de residência mais comuns entre os discentes matriculados no BPT?

Para responder a terceira pergunta, aplicamos a função table() para criar uma tabela com a contagem do município de residência dos discentes matriculados no BPT.

table(dados_bpt1$municipio_de_residencia)
## 
##                         Guarulhos - SP                              Mauá - SP 
##                                      1                                      1 
## Outro município do Estado de São Paulo                    Ribeirão Pires - SP 
##                                      1                                      3 
##                       Santo André - SP             São Bernardo do Campo - SP 
##                                      8                                      9 
##                         São Paulo - SP 
##                                     14

Os três municípios de residência mais comuns entre os discentes matriculados no BPT são São Paulo, São Bernardo do Campo e Santo André.

4. Qual o município de residência mais comum entre os discentes matriculados no BPT que assistiram disciplinas principalmente no matutino no último ano?

Para responder a essa pergunta, usamos a função table() para criar uma tabela com dois argumentos: município de residência e turno.

table(dados_bpt1$municipio_de_residencia, dados_bpt1$turno)
##                                         
##                                          Matutino Noturno Prefiro não responder
##   Guarulhos - SP                                0       0                     1
##   Mauá - SP                                     0       1                     0
##   Outro município do Estado de São Paulo        0       0                     0
##   Ribeirão Pires - SP                           1       2                     0
##   Santo André - SP                              2       6                     0
##   São Bernardo do Campo - SP                    0       8                     1
##   São Paulo - SP                                5       9                     0
##                                         
##                                          Vespertino
##   Guarulhos - SP                                  0
##   Mauá - SP                                       0
##   Outro município do Estado de São Paulo          1
##   Ribeirão Pires - SP                             0
##   Santo André - SP                                0
##   São Bernardo do Campo - SP                      0
##   São Paulo - SP                                  0

O município de residência mais comum entre os discentes matriculados no BPT que assistiram disciplinas principalmente no matutino é São Paulo.

2.4. Exportando uma base de dados

O R não vai exportar a sua base de dados a menos que você especifique esse comando.

Após rodar a sua rotina de análise de dados, você ter feito alterações na base de dados e gostaria de salvá-la como um novo arquivo para acessá-la futuramente. No nosso caso, não fizemos alterações, mas ainda assim vamos exportar a base de dados com o uso da função write_csv().

write_csv(dados_bpt1, path = "D:/OneDrive/@/mti/aula1/dados_bpt1.csv")

Atenção: você precisa alterar o argumento path = para incluir o diretório de trabalho onde deseja salvar o arquivo. dados_bpt1.csv deve ser mantido, pois refere-se ao nome e formato do arquivo que será exportado.

2.5. Salvando o script

Após reproduzir a análise exploratória de dados proposta nessa aula prática o seu script deve estar parecido com esse.

Fig. 5 - Script final

Importante: todo o conteúdo após o # não será rodado pelo R. Ele é muito usado para adicionar comentários antes de cada linha, para que você e outras pessoas que estão lendo o seu código entendam o que cada linha de código faz ao ser rodada.

Você pode salvar o seu script para reproduzir a análise exploratória proposta nessa aula quando quiser, clicando no disquete azul ou através do comando Ctrl + S.

Fig. 6 - Salvando o script